package com.gxuwz.dao;

import com.gxuwz.entity.Classes;
import com.gxuwz.entity.vo.PageVo;
import com.gxuwz.result.PageInfo;

import java.util.List;

/**
 * @Description:实现班级相关信息查询接口
 */

public interface ClassesDao {
    /**
     * @Description:实现查询所有班级信息
     * @Param:  [com.gxuwz.entity.Classes, com.gxuwz.result.PageInfo]
     * @Return: com.gxuwz.entity.vo.PageVo
     */
    public PageVo selectClassesAll(Classes entity, PageInfo pageInfo,String instID);

    /**
     * @Description:实现通过班级编号查询班级信息
     * @Param:  [java.lang.String]
     * @Return: com.gxuwz.entity.Classes
     */

    public Classes selectClassByID(String classId);

    /**
     * @Description:实现添加班级信息记录
     * @Param:  [com.gxuwz.entity.Classes]
     * @Return: int
     */

    public int insertClass(Classes entity);

    /**
     * @Description:实现通过班级编号修改班级信息记录
     * @Param:  [com.gxuwz.entity.Classes, java.lang.String]
     * @Return: int
     */

    public int updateClass(Classes entity,String oldId);

    /**
     * @Description:实现通过班级编号删除班级信息记录
     * @Param:  [java.lang.String]
     * @Return: int
     */

    public int deleteClassById(String classId);

    /**
     * @Description:实现获取所有的班级编号
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */

    List<String> selectClassesIds();

    /**
     * @Description:实现获取所有的班级编号和班级名称
     * @Param:  []
     * @Return: java.util.List<com.gxuwz.entity.Classes>
     */
    List<Classes> selectClassesIdsAndName(String username);

    /**
     * @Description:实现获取所有班级的年级
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */
    List<String> selectClassGrades(String instID);

    /**
     * @Description:实现获取所有班级的专业
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */
    List<String> selectMajors(String instID);

    /**
     * @Description:实现获取所有的班级编号和名称
     * @Param:  []
     * @Return: java.util.List<com.gxuwz.entity.Classes>
     */
//    List<Classes> queryClassIDAndName();

    /**
     * @Description:实现通过学院编号查询班级记录信息
     * @Param:  [java.lang.String]
     * @Return: java.util.List<com.gxuwz.entity.Classes>
     */

    List<Classes> selectClassesByDepID(String depId);

    /**
     * @Description:实现通过辅导员编号查询班级记录信息
     * @Param:  [java.lang.String]
     * @Return: java.util.List<com.gxuwz.entity.Classes>
     */

    List<Classes> selectClassesByInstID(String instId);

    List<String> selectClassesIdsByNoDel();
}
